﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using LayerData.Creditos;
using LayerData;
using LayerEntity.Sistema;
using System.Data;
using LayerEntity.Creditos;
using LayerEntity.Caja;

namespace LayerLogic.Creditos
{
   public class LCreditos
    {
       #region Variables
        public delegate void AddObject(string msj, EnumOperaciones op, EnumEstadoOperaciones est);
        public event AddObject UpdateList = delegate { };
        readonly IPostgreSqlConnectionInfo connectionInfo;
        readonly DCreditos common;

        #endregion
        #region Mantenimientos
        public object[] MantenimientoAnticipos(ECreditos Ecred, EMovientoCaja Emov, EnumOperaciones op)
        {
            return common.MantenimientoAnticipos(Ecred, Emov,(LayerData.EnumOperaciones)((int)op));
        }
        public object[] UpdateCabAnticipos(ECreditos Ecred, EnumOperaciones op)
        {
            return common.UpdateCabAnticipos(Ecred, (LayerData.EnumOperaciones)((int)op));
        }
        public object[] RegisterAmortizaCuota(ECreditos Ecred, EMovientoCaja Emov, EnumOperaciones op)
        {
            return common.RegisterAmortizaCuota(Ecred, Emov, (LayerData.EnumOperaciones)((int)op));
        }
        #endregion
        #region Constructores
        public LCreditos()
        {
            this.InicializaVariables();
            this.connectionInfo = ObjectFactory.CreateConnectionInfo();
            this.common = new DCreditos(this.connectionInfo);
        }

        public LCreditos(IPostgreSqlConnectionInfo connection)
        {
            this.InicializaVariables();
            this.connectionInfo = connection;
            this.common = new DCreditos(connection);
        }

        #endregion
        #region Metodos Privados
        private void InicializaVariables()
        {
        }
        #endregion
        #region Consultas
        public DataTable getCtasporCobrar(ESistema obj)
        {
            return common.getCtasporCobrar(obj);
        }
        public DataTable getCuotasPorCobrar(ESistema obj)
        {
            return common.getCuotasPorCobrar(obj);
        }
        public DataTable getCabAnticipos(ESistema obj)
        {
            return common.getCabAnticipos(obj);
        }
        public DataTable getCronogramaPagos(ESistema obj)
        {
            return common.getCronogramaPagos(obj);
        }
        #endregion
    }
}
